1. Technical Field of the Invention
The present invention relates generally to digital color image sensors, and specifically to image processing of sensor values.
2. Description of Related Art
Electronic image sensors are predominately of two types: CCDs (Charge Coupled Devices) and CMOS—APS (Complimentary Metal Oxide Semiconductor—Active Pixel Sensors). Both types of sensors typically contain an array of photo-detectors (e.g., pixels), arranged in a pattern, that sample color within an image. Each pixel measures the intensity of light within one or more ranges of wavelengths, corresponding to one or more perceived colors.
Despite advances in the manufacturing process, digital image sensors often contain a few defective pixels as a result of noise or fabrication errors, such as impurity contamination. Defective pixels respond inappropriately to the incident light, and therefore produce inaccurate sensor values. Defective pixels are predominantly of three types: stuck high, stuck low or abnormal sensitivity. A stuck high pixel has a very high or near to full scale output, while a stuck low pixel has a very low or near to zero output. An abnormal sensitivity pixel produces a sensor value different from neighboring pixels by more than a certain amount when exposed to the same light conditions.
Thus, a defective pixel can be identified by examining the difference between sensor responses of the defective pixel and its immediate pixel neighbors to the same illumination. Once identified, the sensor value of a defective pixel can be replaced with an estimated sensor value from pixels in the neighborhood of the defective pixel. The process of detecting and correcting defective pixels is referred to as bad pixel correction (BPC). There are a number of algorithms for BPC available in the market today. BPC algorithms exist for both color image sensors and monochrome image sensors. For color image sensors, BPC algorithms typically identify defective pixels by comparing the response of a pixel with neighbors of the same color, even though the neighbors may not be spatially adjacent to the pixel.
For example, one BPC method for color image sensors proposed by Maynants & Diercickx in “A circuit for the correction of pixel defects in image sensor”, Proceedings of the 24th European Solid-State Circuits Conference, The Hague, Netherlands, Sep. 22-24, 1998, p. 312-315, which is hereby incorporated by reference, detects bad pixels by comparing the sensor value of a current pixel to sensor value predictions from neighboring pixels of the same color on the same row. However, the Maynants & Diercickx BPC method does not compare pixels in other color planes that are spatially adjacent to the current pixel, and therefore has the drawback of erasing local ridges in the image, where sensor values peak or recess. The Maynants & Diercickx BPC method also does not compare pixels vertically, and therefore has the additional drawback of erasing fine vertical lines.
Another BPC method for color image sensors proposed by Tan & Acharya in “A robust sequential approach for the detection of defective pixels in an image sensor” Proceedings of the 1999 International Conference on Acoustics, Speech and Signal Processing, Phoenix, Ariz., Mar. 15-19, 1999, p. 2239-2242, which is hereby incorporated by reference, builds a bad pixel map by accumulating the result of bad pixel detection over a sequence of images based on a minimum difference between a given pixel and its immediate neighbors of the same color. However, the Tan & Acharya method requires the storage of the bad pixel map in non-volatile memory. Incorporating non-volatile memory into an image sensor or an image processor chip is a significant expense. Furthermore, the Tan & Acharya method also does not compare pixels in other color planes when creating the bad pixel map.
Therefore, what is needed is a bad pixel correction algorithm that effectively and accurately detects and corrects defective pixels using sensor values from other color planes to account for local ridges in an image. In addition, what is needed is an efficient and accurate bad pixel correction algorithm that requires minimal memory and computation, allowing the algorithm to be implemented on the image sensor chip.